package com.masterclient.app.businessmodule.homemodule.view;

import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.eoner.commonbean.banner.BannerNewItemBean;
import com.masterclient.app.businessmodule.homemodule.bean.banner.BannerNewBean;
import com.masterclient.app.businessmodule.homemodule.bean.banner.SpecialImagBean;
import com.masterclient.app.businessmodule.homemodule.bean.footertab.HomeFooterTabData;
import com.masterclient.app.businessmodule.homemodule.bean.homecms.HomeNewCmsIndexBean;
import com.masterclient.app.businessmodule.homemodule.bean.shoplist.ProductHomeMessage;
import com.masterclient.app.businessmodule.homemodule.bean.footertab.HomeFooterTabBean;
import com.masterclient.app.businessmodule.homemodule.bean.homecms.HomeCmsIndexBean;
import com.masterclient.app.businessmodule.homemodule.bean.hot.HotSearchWordBean;
import com.masterclient.app.businessmodule.homemodule.bean.saletabs.FlashSaleTabBean;
import com.masterclient.app.businessmodule.homemodule.presenter.IHomePresenter;
import com.masterclient.app.businessmodule.homemodule.view.adapter.top.HomeTopComponent;
import com.masterclient.app.businessmodule.homemodule.view.helper.HomeMainViewHelper;
import com.eoner.uikit.header.MyRefreshHead;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;

import java.util.List;

public interface IHomeMainView {

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                    初始化
    //
    /////////////////////////////////////////////////////////////////////////////////
    /**
     * 绑定P和I层
     * */
    IHomeMainView bindPresenterAndInteraction(IHomePresenter iHomePresenter);

    /**
    * 初始化view页面
    * */
    void initMainView(int statusBarHeight);

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                    试图获取
    //
    /////////////////////////////////////////////////////////////////////////////////

    /**
     * 获取toolbar
     * */
    Toolbar mainToolBar();

    /**
     * 获取顶部标题
     * */
    View mainTitleView();

    /**
    * 刷新控件
    * */
    SmartRefreshLayout refreshLayout();

    /**
    * 列表
    * */
    RecyclerView recyclerView();

    /**
    * 顶部组件
    * */
    HomeTopComponent homeTopComponent();

    /**
    * 置顶按钮
    * */
    ImageView backTopView();

    /**
    * 刷新头部
    * */
    MyRefreshHead myRefreshHead();

    /**
     * 当前显示的搜索词
     * */
    TextView currentSearchTextView();

    /**
     * 获取helper
     * */
    HomeMainViewHelper viewHelper();

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                    页面基本刷新
    //
    /////////////////////////////////////////////////////////////////////////////////

    /**
     * 刷新状态
     * isSuccess 成功/失败
    * */
    void finishRefresh(boolean isSuccess);

    /**
    * 重新刷新
    * */
    void showErrorView();

    /**
    * 加载更多状态
    * */
    void finishLoadMore();

    /**
    * 重新设置没有更多的状态
    * */
    void resetNoMoreData();

    /**
    * 没有更多数据
    * */
    void noMoreData();

    /**
     * 根据透明度改变顶部组件
     * */
    void refreshTopStateByAlpha(float alphaFloat);

    /**
    * footer tab 吸顶
    * */
    void setFooterTabState(int state);


    /////////////////////////////////////////////////////////////////////////////////
    //
    //                   首页接口数据加载渲染
    //
    /////////////////////////////////////////////////////////////////////////////////

    /**
     * 重置首页列表先显示
     * */
    void refreshHomeDataToResetListState();

    /**
     * 刷新顶部搜索栏
     * keyword 搜索词
     * isAnimation 是否加动画
    * */
    void refreshHomeDataToTopSearchView(String keyword,boolean isAnimation);

    /**
    * 刷新消息红点
    * */
    void refreshHomeDataToRedImageState(boolean isHidden,String noticeNum);

    /**
     * 刷新banner和热词
     * */
    void refreshHomeDataToBannerAndHot(List<HotSearchWordBean> hotSearchWordBeanList, BannerNewBean bannerBean);

    /**
    * 刷新签到信息
    * */
    void refreshSignData(String imgUrl);

    /**
     * 刷新正品广告
     * */
    void refreshHomeDataToFeature(BannerNewBean bannerBean);

    /**
     * 刷新固定两张占位图片
     * */
    void refreshHomeDataToTwoPic(SpecialImagBean bannerBean);

    /**
     * 处理底部title
     * */
    void refreshFooterTiltle();

    /**
     * 刷新金刚区
     * */
    void refreshHomeDataToDiamonds(BannerNewBean diamonds);

    /**
     * 刷新胶囊区
     * */
    void refreshHomeDataToCapsules(List<BannerNewItemBean>capsules);

    /**
     * 刷新大促区和分割线
     * */
    void refreshHomeDataToPromotionsAndGradual(BannerNewBean promotionsData);

    /**
     * 刷新新三张图一排
     * */
    void refreshHomeDataToFirstPorcelains(List<BannerNewItemBean>firstPorcelains);

    /**
     * 刷新直播模块1
     * */
    void refreshHomeDataToSecondLive(List<BannerNewItemBean>secondLives);

    /**
     * 刷新网格布局
     * */
    void refreshHomeDataToThreePorcelains(List<BannerNewItemBean>threePorcelains);

    /**
     * 刷新直播模块2
     * */
    void refreshHomeDataToFourthLive(List<BannerNewItemBean>fourthPorcelains);

    /**
     * 首次刷新限时购物
     * */
    void refreshHomeDataToFirstSale(List<FlashSaleTabBean>tabBeanList);

    /**
     * 刷新限时购物
     * */
    void refreshHomeDataToSelSale(List<FlashSaleTabBean>flashSaleTabBeans,int selIndex,String status);

    /**
     * 刷新限时购物
     * */
    void refreshHomeDataToAllSelSale(List<FlashSaleTabBean>flashSaleTabBeans);

    /**
    * 刷新为你精选
    * */
    void refreshHomeDataToTemplateCms(String brand_list_url,List<HomeNewCmsIndexBean> templateCmsData);

    /**
    * 刷新专题精选
    * */
    void refreshHomeDataToSpecialCms(HomeCmsIndexBean specialCmsData);

    /**
     * 刷新底部tab
     * */
    void refreshHomeDataToFooterTab(HomeFooterTabData footerTabBeans, String footerTabSwitch);

    /**
     * 首次加载商品列表
     * */
    void refreshHomeFirstLoadFooterShopList(List<HomeFooterTabBean> footerTabBeans);

    /**
     * 加载商品列表更多
     * */
    void loadMoreHomeDataToFooterShopList(int index,List<ProductHomeMessage>productMessageList);

    /**
     * 首页接口处理完成
     * */
    void refreshHomeDataToEnd();



}
